{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. Transistors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Table of Contents\n", "* [1. Transistors](#1.-Transistors)\n", "\t* [1.1 Low-level Physics](#1.1-Low-level-Physics)\n", "\t\t* [1.1.1 How semiconductors work](#1.1.1-How-semiconductors-work)\n", "\t\t* [1.1.2 Switches and Logic Gates](#1.1.2-Switches-and-Logic-Gates)\n", "\t* [1.2 Circuit](#1.2-Circuit)\n", "\t* [1.3 Simulation](#1.3-Simulation)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.1 Low-level Physics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Solid state - not mechanical, electrons do all of the work\n", "* switch - on/off" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1.1 How semiconductors work" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "format": "tab" }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%python\n", "\n", "from metakernel.display import YouTubeVideo, display\n", "\n", "display(YouTubeVideo(\"33vbFFFn04k\", width=600))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Review:\n", "\n", "* silicon \"crystals\" - matrix/lattice; **insulator** - doesn't conduct electricity\n", "* But \"doping\" turns silicon into a conductor\n", " * phosphorus - extra electron/proton; **conductor** N-type (negative charge carrier, electrons)\n", " * boron - one fewer electron/proton; **conductor** P-type (positive charge carrier, holes)\n", " * Not charged! But have ability to move electrons\n", "* interesting place: P-N, N-P boundaries\n", "* no charge carriers in \"depletion region\" - insulator\n", " * one direction, gets larger, other gets smaller\n", " * diode\n", "* semiconductor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1.2 Switches and Logic Gates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breadboard:\n", "\n", "\n", "\n", "LED:\n", "\n", "* Light-emitting Diode" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "format": "tab" }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%python\n", "\n", "from metakernel.display import YouTubeVideo, display\n", "\n", "display(YouTubeVideo(\"sTu3LwpF6XI\", width=600))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.2 Circuit" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "PNP 2N4403\n", "\n", "1. Look at number on part, 2N4403\n", "2. Look up \"datasheet\": http://pdf.datasheetcatalog.com/datasheet/philips/2N4403.pdf\n", "3. Get specifications: \n", " * Collector, Emitter, and Base\n", " * PNP" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.3 Simulation" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Change the voltage on the base to allow conductivity on the wire:\n", "\n", "http://www.falstad.com/circuit/e-pnp.html" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MOS Transistors\n", "\n", "https://en.wikipedia.org/wiki/MOSFET\n", "\n", "* p-type: when gate is supplied with voltage, it acts like an open switch (open circle)\n", "* n-type: when gate is supplied with voltage, it acts like a closed wire (no circle)\n", "\n", "CMOS: complementary metal-oxide semiconductor, made up of n-type and p-type transistors\n", "\n", "\n", "\n", "http://solarwiki.ucdavis.edu/The_Science_of_Solar/Solar_Basics/D._P-N_Junction_Diodes/I._P-Type,_N-Type_Semiconductors\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Inverter\n", "\n", "\n", "\n", "### NOR\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### NAND Gate\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Abstraction!\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Decoder\n", "\n", "2-input, 4-output decoder\n", "\n", "#### Multiplexer (mux)\n", "\n", "2-input, 1-output\n", "\n", "#### Full-adder\n", "\n", "Bit adder:\n", "\n", "* 3-input (bit 1, bit 2, carry bit)\n", "* Output: sum and carry\n", "\n", "Repeat for each bit.\n", "\n", "#### PLA - Programmable Logic Array\n", "\n", "All combinations (AND array), pick which ones give true (OR array)\n", "\n", "* Can compute any logical function\n", "\n", "### Registers\n", "\n", "**R-S Latch**\n", "\n", "R = 1, S = 1 then latch holds its memory (whatever that is).\n", "\n", "* R = 1, momentarily set S = 0, latch is 1\n", "* S = 1, momentarily set R = 0, latch is 0\n", "\n", "**Gated D Latch**\n", "\n", "* D is the data in\n", "* WE (write enable) says to store data in latches\n", "\n", "**Register**\n", "\n", "Series of Gated D Latches, one per bit.\n", "\n", "### Memory\n", "\n", "Decoders and muxes.\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Calysto LC3", "language": "gas", "name": "calysto_lc3" }, "language_info": { "codemirror_mode": { "name": "gas", "version": 3 }, "file_extension": ".asm", "mimetype": "text/x-gas", "name": "gas" } }, "nbformat": 4, "nbformat_minor": 0 }